Book description
Methods for managing complex software construction following the practices, principles and patterns of Domain-Driven Design with code examples in C#
This book presents the philosophy of Domain-Driven Design (DDD) in a down-to-earth and practical manner for experienced developers building applications for complex domains. A focus is placed on the principles and practices of decomposing a complex problem space as well as the implementation patterns and best practices for shaping a maintainable solution space. You will learn how to build effective domain models through the use of tactical patterns and how to retain their integrity by applying the strategic patterns of DDD. Full end-to-end coding examples demonstrate techniques for integrating a decomposed and distributed solution space while coding best practices and patterns advise you on how to architect applications for maintenance and scale.
- Offers a thorough introduction to the philosophy of DDD for professional developers
- Includes masses of code and examples of concept in action that other books have only covered theoretically
- Covers the patterns of CQRS, Messaging, REST, Event Sourcing and Event-Driven Architectures
- Also ideal for Java developers who want to better understand the implementation of DDD
Table of contents
- Introduction
-
Part I: The Principles and Practices of Domain-Driven Design
- Chapter 1: What Is Domain-Driven Design?
- Chapter 2: Distilling the Problem Domain
- Chapter 3: Focusing on the Core Domain
- Chapter 4: Model-Driven Design
- Chapter 5: Domain Model Implementation Patterns
- Chapter 6: Maintaining the Integrity of Domain Models with Bounded Contexts
- Chapter 7: Context Mapping
- Chapter 8: Application Architecture
- Chapter 9: Common Problems for Teams Starting Out with Domain-Driven Design
- Chapter 10: Applying the Principles, Practices, and Patterns of DDD
- Part II: Strategic Patterns: Communicating Between Bounded Contexts
-
Part III: Tactical Patterns: Creating Effective Domain Models
- Chapter 14: Introducing the Domain Modeling Building Blocks
- Chapter 15: Value Objects
- Chapter 16: Entities
- Chapter 17: Domain Services
- Chapter 18: Domain Events
- Chapter 19: Aggregates
- Chapter 20: Factories
-
Chapter 21: Repositories
- Repositories
- A Misunderstood Pattern
- Aggregate Persistence Strategies
- A Repository Is an Explicit Contract
- Transaction Management and Units of Work
- To Save or Not To Save
- The Repository as an Anticorruption Layer
- Other Responsibilities of a Repository
- Repository Antipatterns
- Repository Implementations
- The Salient Points
-
Chapter 22: Event Sourcing
- The Limitations of Storing State as a Snapshot
- Gaining Competitive Advantage by Storing State as a Stream of Events
- Event-Sourced Aggregates
- Building an Event Store
- Using the Purpose-Built Event Store
- CQRS with Event Sourcing
- Recapping the Benefits of Event Sourcing
- Weighing the Costs of Event Sourcing
- Additional Learning Resources
- The Salient Points
- Part IV: Design Patterns for Effective Applications
- Title Page
- Copyright
- Dedication
- About the Author
- Credits
- Acknowledgments
- Advert
- EULA
Product information
- Title: Patterns, Principles, and Practices of Domain-Driven Design
- Author(s):
- Release date: May 2015
- Publisher(s): Wrox
- ISBN: 9781118714706
You might also like
book
Unit Testing Principles, Practices, and Patterns
Unit Testing Principles, Patterns and Practices shows you how to refine your existing unit tests by …
audiobook
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Data is at the center of many challenges in system design today. Difficult issues need to …
video
Design Patterns in the Real World, an Analysis-Based Approach
Alan Holub takes coders deep into the reality of Gang-of-Four design patterns, those reusable guides to …
book
Implementing Domain-Driven Design
“For software developers of all experience levels looking to improve their results, and design and implement …